package com.changgou.goods.service;

import com.changgou.goods.pojo.Goods;
import com.changgou.goods.pojo.Spu;
import com.github.pagehelper.Page;

import java.util.List;
import java.util.Map;

public interface SpuService {

    /***
     * 查询所有
     * @return
     */
    List<Spu> findAll();

    /**
     * 根据ID查询
     * @param id
     * @return
     */
    Goods findGoodsById(String id);


    /**
     * 根据 spuId 进行 spu的查询
     * @param spuId
     * @return
     */
    public Spu findBySpuId(String spuId);

    /***
     * 新增
     * @param goods
     */
    void add(Goods goods);

    /***
     * 修改
     * @param goods
     */
    void update(Goods goods);

    /***
     * 删除
     * @param id
     */
    String delete(String id);

    /**
     * 逻辑删除后，还原信息，回收站信息的还原
     * @param id
     * @return
     */
    String restore(String id);

    /**
     * 真实删除，对数据库中的商品信息，进行物理删除
     * @param id
     * @return
     */
    String realDel(String id);


    /***
     * 多条件搜索
     * @param searchMap
     * @return
     */
    List<Spu> findList(Map<String, Object> searchMap);

    /***
     * 分页查询
     * @param page
     * @param size
     * @return
     */
    Page<Spu> findPage(int page, int size);

    /***
     * 多条件分页查询
     * @param searchMap
     * @param page
     * @param size
     * @return
     */
    Page<Spu> findPage(Map<String, Object> searchMap, int page, int size);


    /**
     * 商品审核，审核通过并自动上架
     * @param id
     */
    String audit(String id);

    /**
     * 商品下架
     * @param id
     */
    String pull(String id);

    /**
     * 商品上架
     * @param id
     */
    String put(String id);

}
